//
//  ViewController.swift
//  页面通信
//
//  Created by lanou on 16/11/7.
//  Copyright (c) 2016年 lanou. All rights reserved.
//

import UIKit
//页面传值1：从前往后传(属性传值)，在设置页面跳转的时候给属性赋值
/*页面传值2：（1）闭包传值
           在第二个页面定义一个闭包，pop动作的时候给闭包赋值，在第一个页面的动作实例化页面二的后实现闭包
           （2）代理传值
            在第二个页面定义协议,声明全局代理，在跳转动作的时候赋值，在第一个页面实例化之后实现代理，定义协议
*/
class ViewController: UIViewController {
     let str = "hello world"
    override func viewDidLoad() {
        super.viewDidLoad()
//       导航控制器的标题
        navigationItem.title = "控制器一"
//        继承UIbutton，只是再次封装
//        self写在实例方法里面表示该实例，写在类方法里面表示该类
    let rightBtn = UIBarButtonItem(title: "跳转", style: .Plain, target: self, action: "pushToSecond")
        navigationItem.rightBarButtonItem = rightBtn
    }
//    右按钮的响应方法：跳转到第二个页面
     func pushToSecond(){
     let secondVc = SecondViewController()
        secondVc.delegate = self
        secondVc.oneStr = str
//        实现闭包
        secondVc.closure = {
            (str:String)->Int
            in
            println("vaule=\(str)")
            return str.lengthOfBytesUsingEncoding(4)
        }
       navigationController?.pushViewController(secondVc, animated: true)
    }
    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}

extension ViewController:
secondProtocol{

    func translateString(str: String) {
        print("协议传值\(str)")
    }
}

